package com.honghe.system.service;

import java.util.List;
import com.honghe.system.domain.ContactRecordLog;
import com.honghe.system.domain.CustomerContactRecord;

/**
 * 客户联系记录日志服务接口
 * 
 * @author honghe
 */
public interface IContactRecordLogService 
{
    /**
     * 查询客户联系记录日志
     * 
     * @param logId 客户联系记录日志ID
     * @return 客户联系记录日志
     */
    public ContactRecordLog selectContactRecordLogById(Long logId);

    /**
     * 查询客户联系记录日志列表
     * 
     * @param contactRecordLog 客户联系记录日志
     * @return 客户联系记录日志集合
     */
    public List<ContactRecordLog> selectContactRecordLogList(ContactRecordLog contactRecordLog);

    /**
     * 根据客户ID查询联系记录日志
     * 
     * @param caseId 客户ID
     * @return 联系记录日志集合
     */
    public List<ContactRecordLog> selectContactRecordLogByCaseId(String caseId);

    /**
     * 根据记录ID查询联系记录日志
     * 
     * @param recordId 记录ID
     * @return 联系记录日志集合
     */
    public List<ContactRecordLog> selectContactRecordLogByRecordId(Long recordId);

    /**
     * 新增客户联系记录日志
     * 
     * @param contactRecordLog 客户联系记录日志
     * @return 结果
     */
    public int insertContactRecordLog(ContactRecordLog contactRecordLog);

    /**
     * 根据联系记录创建日志（添加记录）
     * 
     * @param record 联系记录
     * @param operationType 操作类型
     * @param operationBy 操作人
     * @return 结果
     */
    public int createLogFromRecord(CustomerContactRecord record, String operationType, String operationBy);

    /**
     * 批量新增客户联系记录日志
     * 
     * @param contactRecordLogList 客户联系记录日志列表
     * @return 结果
     */
    public int batchInsertContactRecordLog(List<ContactRecordLog> contactRecordLogList);

    /**
     * 修改客户联系记录日志
     * 
     * @param contactRecordLog 客户联系记录日志
     * @return 结果
     */
    public int updateContactRecordLog(ContactRecordLog contactRecordLog);

    /**
     * 批量删除客户联系记录日志
     * 
     * @param logIds 需要删除的客户联系记录日志ID
     * @return 结果
     */
    public int deleteContactRecordLogByIds(Long[] logIds);

    /**
     * 删除客户联系记录日志信息
     * 
     * @param logId 客户联系记录日志ID
     * @return 结果
     */
    public int deleteContactRecordLogById(Long logId);
} 